草庐IT

vc x86.mis

全部标签

c# - 什么位置安装文件 - Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

请耐心等待,我会尽量解释清楚。我开始了一个新项目(类库),目标是4.5而不是客户端配置文件4.5。我添加了一个引用“System.Runtime.Serialization”,属性表明它位于“C:\ProgramFiles(x86)\ReferenceAssemblies\Microsoft\Framework.NETFramework\v4.5\System.Runtime.Serialization”位置。dll”在我的电脑上,它可以通过使用msbuild的构建脚本正常编译。在使用teamcity的构建服务器上-它会提示errorCS0012:Thetype'System.Obje

c# - 将 .NET 程序集编译成 x86 机器码

有没有办法将.NET程序集编译成native代码(即x86)输出,也就是说,没有MSIL。据我了解,如果您仅将x86指定为体系结构,这只会更改PEheader以将其指向JIT,但程序集仍将包含MSIL并将根据需要进行JITT。NGen确实会为指定的体系结构生成程序集文件,但它不是编译器,它旨在提高性能,但您仍然需要原始DLL,native镜像的存在仅用于避免JIT编译程序集,但您可以获取该原生图像并使用它,可以吗?那么,有什么方法可以将.NET实际编译为native代码吗? 最佳答案 SpoonStudio(之前被命名为Xenoco

c# - 无法加载文件或程序集 'Magick.NET-x86.DLL' 或其依赖项之一

我使用了Magick.NET,它是ImageMagick的.NET包装器,它在客户端机器上抛出上述错误。不过它在我的机器上运行良好。我还没有安装ImageMagick,所以我根本无法理解我需要在客户端机器上做什么。我安装了VS2012。此外,Magick.NET在其中包含ImageMagick,我认为它使用C++/CLI并向nativeImageMagick公开一个.NET接口(interface),所有这些都在一个DLL中。那么它需要什么DLL呢?(我刚遇到这个错误,所以发布了我找到的解决方案。) 最佳答案 Magick.NET需

c# - 在 x86 系统上编译 C# .NET x64 二进制文件

我有一个C#项目,其中包含对ScintillaNET的引用。不幸的是,ScintillaNET喜欢检测机器的架构并根据运行的架构加载nativeDLL。这意味着我的项目必须预编译成x86和x64版本(由于上述检测,我无法使用任何CPU)。问题是我的构建服务器是x86-only。有没有一种方法可以在x86机器上以x64模式编译.NET程序集?据我所知,切换只是强制计算机加载所需体系结构的程序集,并且在编译时实际上不会输出任何体系结构相关的代码,但是,在构建服务器上的Mono2.10.6下编译时我得到如下错误:“错误CS0016:无法写入文件‘ScintillaNet’,原因:AMD64”

c# - 加载 x86 或 x64 程序集

我有两个版本的System.Data.SQLite.DLL-适用于x86和x64平台。x86版本保存在应用程序文件夹中,x64版本保存在appFolder\x64文件夹中。应用程序编译为AnyCPU。如何根据Windows平台加载所需的SQLite版本? 最佳答案 如果您使用来自http://system.data.sqlite.org的SQLite,System.Data.SQLite.DLL是完全托管的。有一个底层nativeDLL,SQLite.Interop.DLL,需要根据进程(32位或64位)进行更改。我将native库

c# - 从同一应用程序读取和写入 x86 和 x64 注册表项

我正在运行编译为x86的应用程序,它在64位Windows上运行。为了解决ClickOnce文件关联问题,我想从注册表的x86View中读取一些CLSID值,然后将它们写入x64View。明确地说,这意味着我想从x86应用程序同时读取x86注册TableView,然后写入x64注册TableView。我想获取在HKEY_CURRENT_USER\Software\Classes\CLSID\{myclsid}下找到的值并将它们写入HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{myclsid}.我应该怎么做?使用Registr

c# - 为什么 'Any CPU' 应用程序在 x64 机器上以 x86 运行?

我有一个AnyCPU应用程序安装到ProgramFiles(x86)。在一台Windows7x64机器上,它按预期以x64运行,而在另一台Windows7x64机器上,它以x86运行!这怎么可能?我希望它在两台机器上都以x64运行。可能是什么原因以及我该怎么做才能始终使其以x64运行?我从哪里运行它是否重要-在我的例子中是ProgramFiles(x86)? 最佳答案 很可能您链接了一些不是AnyCPU但包含native代码(或编译为x86)的程序集,这导致整个过程回退到x86。要了解您的程序集是如何编译的,可能有帮助的相关Stac

c# - 根据 x64/x86 更改 C# DllImport 目标代码

我有一个外部c++dll可以使用DLLImport导入。如果我的应用程序在x64中编译,我需要导入此dll的x64版本,如果它是x86版本,我需要x86dll。实现此目标的最佳方法是什么?理想情况下,我想要一些预处理器指令,但我知道这在C#中不起作用?更多信息:DLL正在由设置为AnyCPU的项目导入。父项目是确定应用程序编译为x64还是x86的项目。我们为不同的客户编译了两个版本-我想在两个版本中共享子项目。 最佳答案 这主要是一个部署问题,只需让您的安装程序根据目标计算机上的Windows版本复制正确的DLL。但从来没有人喜欢这

c# - 如何处理 x86 与 x64 包

我们使用NuGet来管理我们的第三方包。我们还必须构建x86和x64版本。我们现在依赖于NuGet包(zeromq),它依赖于Cdll,因此具有x86和x64版本。在Nuget中搜索时,我只看到两个不同的项目(zeromqx64和zeromqx86),而不是一个统一的项目。约束我们在开发人员机器上的构建过程是在visualstudio中选择适当的配置(即Debug/x86、Releasex64等)并构建,因此我们使用的任何解决方案都必须适合visualstudioGUI(即MSBuild解决方案不会真正适合我们当前的工作流程)。编辑约束的附录....如果我们不能在NuGet中自动执行此

c# - 为什么 'Any CPU (prefer 32-bit)' 允许我在 .NET 4.5 下分配比 x86 更多的内存?

根据许多SO答案和thiswidelycitedblogpost,为“任何CPU”构建并选择了“首选32位”选项的.NET4.5应用程序将在32位和64位系统上作为32位进程运行(与.NET4.0和更早版本不同)。换句话说,x86和AnyCPU选择了'prefer32-bit'是等价的(忽略它是否可以在ARM上运行)。但是,我的测试表明,在64位系统上,“AnyCPU更喜欢32位”应用程序(我确认它运行32位)可以分配比x86应用程序更多的内存。我编写了一个.NET4.5C#控制台应用程序,它在一个循环中分配10MB字节数组(当然保留引用)直到它遇到OutOfMemoryExcepti